package cn.wzvtcsoft.base;

import cn.wzvtcsoft.common.vo.PageQueryParam;
import org.springframework.data.domain.Page;

import java.util.Collection;
import java.util.List;

/**
 * @author swxu_2005@163.com
 */
public interface BaseService<E> {
  /**
   * 查询单个
   */
  E getOne(Long id);

  /**
   * 查询所有
   */
  List<E> findAll();

  /**
   * 带条件分页查询
   */
  Page<E> listByConditionAndPage(PageQueryParam<E> pageQueryParam);

  /**
   * 新增
   */
  E insert(E e);

  /**
   * 更新
   */
  E update(E e);

  /**
   * 删除单个
   */
  void delete(E e);

  /**
   * 批量删除
   */
  void deleteAll(Collection<E> es);

}
